package com.hbnu.system.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.hbnu.system.config.PostDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDate;

/**
 * <p>
 * 
 * </p>
 *
 * @author ${author}
 * @since 2023-05-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("construction")
public class Construction implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键 学科建设编号
     */
    @ApiModelProperty(value = "主键 学科建设编号")
    @TableId(value = "ConstructionID", type = IdType.ASSIGN_ID)
    private String ConstructionID;

    /**
     * 统计分类
     */
    @ApiModelProperty(value = "统计分类")
    @TableField("classifi")
    private String classifi;

    /**
     * 项目名称
     */
    @ApiModelProperty(value = "项目名称")
    @TableField("projectName")
    private String projectName;

    /**
     * 学科类型
     */
    @ApiModelProperty(value = "学科类型")
    @TableField("disciplineType")
    private String disciplineType;

    /**
     * 批准年度
     */
    @ApiModelProperty(value = "批准年度")
    @TableField("approvalYear")
    private String approvalYear;

    /**
     * 批准批次
     */
    @ApiModelProperty(value = "批准批次")
    @TableField("approvalBatch")
    private String approvalBatch;

    /**
     * 学科负责人/带头人
     */
    @ApiModelProperty(value = "学科负责人/带头人")
    @TableField("head")
    private String head;

    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    @TableField("phone")
    private String phone;

    /**
     * 电子邮件
     */
    @ApiModelProperty(value = "电子邮件")
    @TableField("Email")
    private String Email;

    /**
     * 联系地址
     */
    @ApiModelProperty(value = "联系地址")
    @TableField("address")
    private String address;

    /**
     * 邮政编码
     */
    @ApiModelProperty(value = "邮政编码")
    @TableField("zipcode")
    private String zipcode;

    /**
     * 附件
     */
    @ApiModelProperty(value="附件")
    @JsonDeserialize(using = PostDeserializer.class)
    private byte[] annex;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField("notes")
    private String notes;

    /**
     * 录入人
     */
    @ApiModelProperty(value = "录入人")
    @TableField("entered")
    private String entered;

    /**
     * 录入日期
     */
    @ApiModelProperty(value = "录入日期")
    @TableField("enteredDate") //fill = FieldFill.INSERT 自动填入
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate enteredDate;

    /**
     * 未通过原因
     */
    @ApiModelProperty(value="未通过原因")
    @TableField(value = "reason")
    private String reason;

    /**
     * 审核状态
     */
    @ApiModelProperty(value="审核状态")
    @TableField(value = "status")
    private String status;


}
